From 898fe0c82f0396cb6c74d85252dd594552933596 Mon Sep 17 00:00:00 2001 From: Kristian Rietveld Date: Sun, 8 Jun 2008 12:47:15 +0000 Subject: [PATCH] Bug 488119 - critical warnings from gtk_tree_view_get_visible_range 2008-06-08 Kristian Rietveld Bug 488119 - critical warnings from gtk_tree_view_get_visible_range * gtk/gtktreeview.c (gtk_tree_view_get_visible_range): only try to find path if we found valid nodes, return FALSE otherwise. (Patch from Matthias Clasen). svn path=/trunk/; revision=20333 --- ChangeLog | 8 ++++++++ gtk/gtktreeview.c | 17 +++++++++++++---- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index bbb0c94107..0c9ace1437 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2008-06-08 Kristian Rietveld + + Bug 488119 - critical warnings from gtk_tree_view_get_visible_range + + * gtk/gtktreeview.c (gtk_tree_view_get_visible_range): only try to + find path if we found valid nodes, return FALSE otherwise. (Patch + from Matthias Clasen). + 2008-06-08 Matthias Clasen * gtk/gtkrecentmanager.c: diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c index 6bebb8cf67..1a01482833 100644 --- a/gtk/gtktreeview.c +++ b/gtk/gtktreeview.c @@ -13237,18 +13237,24 @@ gtk_tree_view_get_visible_range (GtkTreeView *tree_view, { GtkRBTree *tree; GtkRBNode *node; - + gboolean retval; + g_return_val_if_fail (GTK_IS_TREE_VIEW (tree_view), FALSE); if (!tree_view->priv->tree) return FALSE; + retval = TRUE; + if (start_path) { _gtk_rbtree_find_offset (tree_view->priv->tree, TREE_WINDOW_Y_TO_RBTREE_Y (tree_view, 0), &tree, &node); - *start_path = _gtk_tree_view_find_path (tree_view, tree, node); + if (node) + *start_path = _gtk_tree_view_find_path (tree_view, tree, node); + else + retval = FALSE; } if (end_path) @@ -13261,10 +13267,13 @@ gtk_tree_view_get_visible_range (GtkTreeView *tree_view, y = TREE_WINDOW_Y_TO_RBTREE_Y (tree_view, tree_view->priv->vadjustment->page_size) - 1; _gtk_rbtree_find_offset (tree_view->priv->tree, y, &tree, &node); - *end_path = _gtk_tree_view_find_path (tree_view, tree, node); + if (node) + *end_path = _gtk_tree_view_find_path (tree_view, tree, node); + else + retval = FALSE; } - return TRUE; + return retval; } static void -- 2.30.2